package com.ls.controller.rule.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.*;
import java.time.LocalTime;
import java.util.List;

import static com.ls.constant.SystemConstants.TEMPLATE_CATEGORY_HANG_UP;

/**
 * @ClassName AddRuleModel
 * @Description APP用户 新增规则model 五个字段
 * @Author pengyu
 * @Date 2024/6/27 17:14
 * @Version 1.0
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AddRuleModel {
    /**模板类别 0为挂机短信，1为关怀短信；为0时call_type生效，1时holiday_id生效*/
    @NotNull(message = "模板类别不能为空")
    @Max(value = 1)
    @Min(value = 0)
    private Integer templateCategory=TEMPLATE_CATEGORY_HANG_UP;
    /**节假日id template_category1时生效*/
    private Long holidayId;
    /**提前发送n天，template_category为1时生效*/
    @Max(value = 5)
    @Min(value = 0)
    private Integer advance;
    /**部门分类 0为员工，1为客户，2为亲友*/
    private List<Integer> teamType;
    /**部门id*/
    private List<Long> teamId;
    /**标签分类 0为员工，1为客户，2为亲友*/
    private List<Integer> labelType;
    /**标签id*/
    private List<Long> labelId;
    /**联系人id*/
    private List<Long> linkmanId;
    /**
     * 规则名称
     */
    @NotBlank(message = "规则名称不得为空")
    private String ruleName;


    /**
     * 规则生效-开始时间 hh:mm:ss
     */
    @NotNull(message = "开始时间不得为空")
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    private LocalTime startTime;

    /**
     * 规则生效-结束时间 HH:mm:ss
     */
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    private LocalTime endTime;

    /**
     * 发送限制类型: 1 无限制 2 每天一次 3 每周一次 4 每月一次
     */
    @Max(value = 4)
    @Min(value = 1)
    private Integer limitType;

    /**
     * 呼入： 1 拒接 2 未接通 3 已接通 4勿扰；  呼出：5 所有
     */
    @Max(value = 5)
    @Min(value = 1)
    private Integer callType;

    /**
     * 短信模板id
     */
    @NotNull(message = "短信模板id不得为空")
    private Long[] templateIdArray;
}
